Load distribution or load spreading is a method by which bandwidth is more effectively utilized and overall performance is improved in a network. Most automated load distribution and load spreading techniques deployed today operate with only a very local view, these load distribution and load spreading techniques only consider the number of paths or the next hops to a given destination and do not consider the overall distribution of traffic in the network.
Equal cost multi-path (ECMP) is a common strategy for load spreading of unicast traffic in routed networks that is utilized where the decision as to how to forward a packet to a given destination can resolve to any of multiple “equal cost” paths, which tied for being the shortest path when running database calculations. ECMP can be used in conjunction with most unicast routing protocols and nodes equipped with the required supporting data plane hardware, since it relies on a per hop decision that is local to a single router and assumes promiscuous receipt and a complete forwarding table at every intermediate node. Using ECMP at any given node in a network, the load is divided pseudo-evenly across the set of equal cost next hops. This process is implemented independently at each hop of the network where more than one path to a given destination exists.
In many implementations, when the presence of multiple equal cost next hops is encountered, each packet is inspected for a source of entropy such as an Internet Protocol (IP) header and a hash of header information modulo of the number of paths is used to select the next hop for the particular packet. For highly aggregated traffic, this method will on average distribute the load evenly in regular topologies (i.e., symmetric topologies) and does offer some improvement in less regular topologies.
Multiprotocol label switching (MPLS) is a combination of a data plane and control plane technology utilized to forward traffic over a network. MPLS uses per hop labels that are assigned to a stream of traffic to forward the traffic across the network using label lookup and translation (referred to as “swapping”). Each node of the network supports MPLS by reviewing incoming traffic received over the network and forwarding that traffic based on its label, the label is typically translated or “swapped” at each hop.
MPLS networks can improve the distribution of routed traffic in the network using per hop ECMP to distribute or spread a load across equal cost paths. In MPLS networks, a label switch path (LSP) is set up to each next hop for each equal cost path by every node in the network. The forwarding path for a given destination in the network is calculated using a shortest path first (SPF) algorithm at each node in the network, mapped to the local label bindings in the node, and the resultant connectivity appears as a multi-point to multi-point mesh. Individual nodes when presented with traffic destined for multiple equal costs paths utilize payload information as part of the path selection mechanism in order to maximize the evenness of flow distribution across the set of paths. The establishment of the multi-point to multi-point LSP is automated.
The label distribution protocol (LDP) or similar protocol is used to overprovision a complete set of label bindings for all possible forwarding equivalence classes in the network, and then each label switch router (LSR) independently computes the set of next hops for each forwarding equivalence class and selects which label bindings it will actually use at any given moment.